Thực đơn
Hệ thập lục phân Đổi gốc từ các hệ số khácPhương pháp đổi một số sang hệ thập lục phân được thực hiện tương tự như phương pháp được áp dụng cho các hệ cơ số khác, bằng cách sử dụng phép chia lấy số nguyên và số dư trong hệ cơ số nguồn. Trên lý thuyết, phương pháp này có thể áp dụng được với bất cứ (một cặp) hệ cơ số nào. Song nói chung theo thói quen sử dụng của con người và trong kỹ thuật máy tính, phương pháp này được áp dụng với hệ thập phân và nhị phân. (Đối với hệ nhị phân, người ta còn có những phương pháp nhanh gọn hơn nữa.)
Chẳng hạn, nếu lấy d là số thập phân cần phải được đổi, thì dãy số hihi-1...h2h1 là những con số để biểu diễn số ở hệ thập lục phân tương ứng. Với cách tính dãy h như sau:
1. Hi:= d mod 16("mod" (modulus (tiếng Anh)): phép chia lấy dư, thực hiện phép chia số nguyên và lấy kết quả là số dư - chẳng hạn 17 mod 5 = 2 vì 17/5 = 3, dư 2.)2. D := d − h i 16 {\displaystyle {\begin{matrix}D:={\frac {d-h_{i}}{16}}\end{matrix}}} 3. Nếu d == 0 thì kết quả là dãy số h); nếu không, quay trở lại bước 1.Phần sau đây giới thiệu chu trình của thuật toán trên, lập trình bằng ngôn ngữ JavaScript, dùng để biến bất cứ một số thập phân nào sang hệ thập lục phân, kết quả trả về là một string (dãy các ký tự). Mục đích của ví dụ là minh họa chu trình của thuật toán (có thể dựa vào đấy để áp dụng cho các công dụng xử lý khác). Để áp dụng thuật toán này với dữ liệu cụ thể, có thể dùng các toán tử trong phép toán thao tác bit.
function toHex(d) { /* biến đổi sang hệ thập lục phân */ var r = d % 16; if(d-r==0) {return toChar(r);} else {return toHex((d-r)/16)+toChar(r);}}function toChar(n) { /* biến đổi số nguyên sang ký tự có thể đọc và in được */ var alpha = "0123456789ABCDEF"; return alpha.charAt(n);}
Cần lưu ý rằng cơ số "16" dùng ở trên có thể được thay thế bằng bất cứ cơ số nào (chẳng hạn hệ nhị phân (2), tam phân (3), bát phân (8) v.v..). Sau đây là thủ tục được minh họa bằng ngôn ngữ C++ để in ra một số ở hệ bất kì tương ứng với một số thập phân nhận vào.
const alpha = "0123456789ABCDEF";void printinbase(long d, short b) { // in ra số ở hệ cơ số b tương ứng với số thập phân d) short r=d%b; if (d-r) printinbase(d/b,b); cout << alpha[r];}
Chúng ta có thể biến đổi bằng cách phân giải giá trị của vị trí của từng con số (hàng đơn vị, hàng chục, hàng trăm trong hệ thập phân chẳng hạn), rồi biến mỗi giá trị ấy sang giá trị tương ứng của hệ thập lục phân, sau đó làm phép cộng hay nhân trên con số ấy để được kết quả trong hệ thập lục phân. (khi làm tính nhân, nên có sẵn một bảng cửu chương trong hệ tương ứng (thập lục phân) để dễ đối chiếu - vì đa số chỉ biết bảng cửu chương trong hệ thập phân mà thôi). (Number system - Computer Methods in Chemical Engineering)
Ví dụ: 12310 + 45610
10010 + 2010 + 310 + 40010 + 5010 + 610 ---------------------- hay 6416 + 1416 + 316 + 19016 + 3216 + 616 ---------------------- 1F416 + 4616 + 916 11 (Nhớ) ------------- 1F416 50010 + 4616 + 7010 916 910 ----- ----- 24316 57910
Vì máy vi tính nói chung dùng hệ nhị phân, nên phương pháp đổi của máy thường là thông qua hệ nhị phân trước đã, sau đó dùng sự thông nối trực tiếp giữa thập lục phân và nhị phân, mà đổi sang hệ thập lục phân.
Thực đơn
Hệ thập lục phân Đổi gốc từ các hệ số khácLiên quan
Hệ Mặt Trời Hệ sinh thái Hệ động vật Việt Nam Hệ khứu giác Hệ thống nội màng Hệ thống bảo tàng Paris Hệ thống X Window Hệ thống điện khí hóa đường sắt Hệ sinh thái biển Hệ thập lục phânTài liệu tham khảo
WikiPedia: Hệ thập lục phân http://www.intuitor.com/hex/ http://www.mathsisfun.com/hexadecimal-decimal-colo... http://www.pcnineoneone.com/howto/hex1.html http://acms.synonet.com/bendix/intro/bitsof.pdf http://www.thinkgeek.com/tshirts/frustrations/6596... http://www.web-colors-explained.com/hex.php http://www.engr.umd.edu/~nsw/ench250/number.htm http://www.insidereality.net/site/content/math/bas... http://leetkey.mozdev.org https://commons.wikimedia.org/wiki/Category:Hexade...